There are many known algorithms which have been used to route tasks, such as incoming calls, to agents within a group or groups in call and service centers. Recently, operators have realized the importance of task routing based on the skills of agents as compared to the needs required to adequately service individual tasks. For instance, a telephone caller may require expertise in a particular software or hardware system, or expertise in a particular sector of the financial market, or a specific company. The same is true of a person requesting assistance by e-mail. Further, a caller may speak only a specific language and therefore require an agent fluent in that language. The list of possible skills goes on and on, and are defined by the owners of the individual service centers according to the purposes of the service centers.
U.S. Pat. No. 5,825,869, issued to Brooks et. al. On Oct. 20, 1998, describes a system for skill-based routing of telephone calls. Brooks attempts to select agents whose proficiency in specified skills are closest to the required proficiency levels of one or more required skills. However, Brooks describes no algorithm for actually performing the calculations and logic to make the selection. Therefore, it must be presumed that Brooks performs a brute-force method in which all available agents are evaluated in a straight-forward manner and then the results compared to finally select an agent. Prior versions of IBM's CallPath products performed a similar brute-force manner of agent selection. However, such methods of agent selection are very inefficient, especially for service centers that experience high levels of traffic.